测试用例
测试框架
NW.js使用三个Python文件作为测试基础框架 . 源代码可以查看test
目录中文件 .
NW.js每个测试用例都是一个可以运行的应用 , 所以可以脱离框架手动运行 .
NW.js中 , 测试用例有两种类型 , 分别是自动
和远程
. 参考测试用例部分的说明 .
通过以下命令运行测试用例:
python test/test.py -t 80 auto
python test/test.py -t 80 remoting
测试用例编写
自动测试
待续
远程测试
远程测试使用ChromeDriver . 通常测试用例需要用户交互 . 参考ChromeDriver测试 .
远程测试需要test.py
文件 , 该文件位置为应用的根目录中 .
test.py
文件样例:
import time
import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("nwapp=" + os.path.dirname(os.path.abspath(__file__)))
driver = webdriver.Chrome(executable_path=os.environ['CHROMEDRIVER'], chrome_options=chrome_options)
time.sleep(1)
try:
print driver.current_url
# 该部分增加测试代码以及`assert`断言完成测试
finally:
driver.quit()
NW.js应用中真实用例 . 通过ChromeDriver , 可以模拟鼠标点击事件 , 输入动作以及DOM元素中的内容 . 例如 , 以下代码 , 点击"Click Me"按钮 , document中增加内容为"success"的DOM标签对象 .
<button id="clickme" onclick="success()">Click Me</button>
<script>
function success() {
var el = document.createElement('div');
el.id = 'result';
el.innerHTML = 'success';
document.body.appendChild(el);
}
</script>
通过test.py
脚本进行测试:
driver.implicitly_wait(10) # 查找标签对象超时时间为10秒
clickme = driver.find_element_by_id('clickme')
clickme.click() # 点击按钮
result = driver.find_element_by_id('result')
assert("success" in result.get_attribute('innerHTML')) # assert "success" is in the element 判断标签内容是否为"success"